package mq

import "fmt"

var done chan bool

// 循环监听队列,获取消息
func StartConsume(qName, cName string, callBack func(msg []byte) bool) {
	if !initChannel() {
		fmt.Println("Failed to initialize channel")
		return
	}
	//1.通过channel.Consume获取消息信道
	msgs, err := channel.Consume(
		qName,
		cName,
		true,
		false, //是否只有一个消费者
		false,
		false,
		nil,
	)
	if err != nil {
		fmt.Println(err)
		return
	}
	//2.循环获取队列消息
	done = make(chan bool)
	go func() {
		for msg := range msgs {
			//3.调用callBack方法来处理新的信息
			procssSuc := callBack(msg.Body)
			if !procssSuc {
				fmt.Println("不成功")
			}
			fmt.Println(msg.Body)
		}
	}()

	//done没有新的信息过来，则会一直堵塞
	<-done
	//关闭rabbitMq
	channel.Close()
}
